
<!DOCTYPE HTML>
<html lang="zh-hans" >
    <head>
        <meta charset="UTF-8">
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <title>3.1 数据生产模块 · 大数据 bigdata_telecom_project_atguigu 课堂笔记</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.2.3">
        <meta name="author" content=" 李振超">
        
        
    
    <link rel="stylesheet" href="../gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-splitter/splitter.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-expandable-chapters-small/expandable-chapters-small.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-page-toc-button/plugin.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-prism/prism-solarizedlight.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-tbfed-pagefooter/footer.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-change_girls/girls.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-search/search.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-fontsettings/website.css">
                
            
        

    

    
        
        <link rel="stylesheet" href="../styles/website.css">
        
    
        
    
        
    
        
    
        
    

        
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="32-shu-ju-cai-ji-he-xiao-fei.html" />
    
    
    <link rel="prev" href="../di-3-zhang-xiang-shi-xian.html" />
    

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="输入并搜索" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    
    
        
        <li>
            <a href="http://www.atguigu.com/" target="_blank" class="custom-link">联系我们</a>
        </li>
    
    

    
    <li class="divider"></li>
    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="../">
            
                <a href="../">
            
                    
                    第 1 章 项目背景
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.2" data-path="../chapter1.html">
            
                <a href="../chapter1.html">
            
                    
                    第 2 章 项目架构
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3" data-path="../di-3-zhang-xiang-shi-xian.html">
            
                <a href="../di-3-zhang-xiang-shi-xian.html">
            
                    
                    第 3 章 项目实现
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter active" data-level="1.3.1" data-path="31-shu-ju-sheng-cheng.html">
            
                <a href="31-shu-ju-sheng-cheng.html">
            
                    
                    3.1 数据生产模块
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.2" data-path="32-shu-ju-cai-ji-he-xiao-fei.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei.html">
            
                    
                    3.2 数据采集和消费
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.3.2.1" data-path="32-shu-ju-cai-ji-he-xiao-fei/321-shu-ju-cai-ji.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/321-shu-ju-cai-ji.html">
            
                    
                    3.2.1 数据采集
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.2.2" data-path="32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei.html">
            
                    
                    3.2.2 数据消费
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.3.2.2.1" data-path="32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3221-7c7b3a-propertyutil.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3221-7c7b3a-propertyutil.html">
            
                    
                    3.2.2.1 类:PropertyUtil
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.2.2.2" data-path="32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3222-7c7b3ahbasedao.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3222-7c7b3ahbasedao.html">
            
                    
                    3.2.2.2 类: HBaseDao
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.2.2.3" data-path="32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3223-7c7b3ahbaseutil.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3223-7c7b3ahbaseutil.html">
            
                    
                    3.2.2.3 类: HBaseUtil
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.2.2.4" data-path="32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3224-7c7b3ahbaseconsumer.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3224-7c7b3ahbaseconsumer.html">
            
                    
                    3.2.2.4 类: HBaseConsumer
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.3.2.3" data-path="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1.html">
            
                    
                    3.2.3 数据查询方式1
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.3.2.3.1" data-path="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3231-hbasefilterutil.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3231-hbasefilterutil.html">
            
                    
                    3.2.3.1 类: HBaseFilterUtil
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.2.3.2" data-path="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3232-7c7b3a-querywithfilter.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3232-7c7b3a-querywithfilter.html">
            
                    
                    3.2.3.2 类: QueryWithFilter
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.3.2.4" data-path="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2.html">
            
                    
                    3.2.4 数据查询方式2
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.3.2.4.1" data-path="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3241-shou-dong-cha-ru-bei-jiao-xin-xi.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3241-shou-dong-cha-ru-bei-jiao-xin-xi.html">
            
                    
                    3.2.4.1 手动写入被叫信息
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.2.4.2" data-path="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3242-shi-yong-xie-chu-li-qi-xie-ru-bei-jiao-xin-xi.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3242-shi-yong-xie-chu-li-qi-xie-ru-bei-jiao-xin-xi.html">
            
                    
                    3.2.4.2 使用协处理器写入被叫信息
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.3.2.5" data-path="32-shu-ju-cai-ji-he-xiao-fei/325-ba-zheng-ge-xiao-fei-mo-kuai-da-bao-dao-ji-qun-zhong-yun-xing.html">
            
                <a href="32-shu-ju-cai-ji-he-xiao-fei/325-ba-zheng-ge-xiao-fei-mo-kuai-da-bao-dao-ji-qun-zhong-yun-xing.html">
            
                    
                    3.2.5 把整个消费模块打包到集群中运行
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.3.3" data-path="33-shu-ju-fen-xi.html">
            
                <a href="33-shu-ju-fen-xi.html">
            
                    
                    3.3 数据分析
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.3.3.1" data-path="33-shu-ju-fen-xi/331-xu-qiu-fen-xi.html">
            
                <a href="33-shu-ju-fen-xi/331-xu-qiu-fen-xi.html">
            
                    
                    3.3.1 数据分析
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.3.2" data-path="33-shu-ju-fen-xi/332-mysql-biao-jie-gou-she-ji.html">
            
                <a href="33-shu-ju-fen-xi/332-mysql-biao-jie-gou-she-ji.html">
            
                    
                    3.3.2 Mysql 表结构设计
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.3.3" data-path="33-shu-ju-fen-xi/333-huan-jing-da-jian.html">
            
                <a href="33-shu-ju-fen-xi/333-huan-jing-da-jian.html">
            
                    
                    3.3.3 环境搭建
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.3.4" data-path="33-shu-ju-fen-xi/334-xu-qiu-shi-xian.html">
            
                <a href="33-shu-ju-fen-xi/334-xu-qiu-shi-xian.html">
            
                    
                    3.3.4 需求实现
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.3.3.4.1" data-path="33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3341-53053a-com-atguigu-dataanalasis-bean.html">
            
                <a href="33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3341-53053a-com-atguigu-dataanalasis-bean.html">
            
                    
                    3.3.4.1 包: com.atguigu.dataanalasis.bean
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.3.4.2" data-path="33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3342-53053a-com-atguigu-dataanalasis-conversion.html">
            
                <a href="33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3342-53053a-com-atguigu-dataanalasis-conversion.html">
            
                    
                    3.3.4.2 包: com.atguigu.dataanalasis.conversion
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.3.4.3" data-path="33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3343-53053a-com-atguigu-dataanalasis-mapred.html">
            
                <a href="33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3343-53053a-com-atguigu-dataanalasis-mapred.html">
            
                    
                    3.3.4.3 包:com.atguigu.dataanalasis.mapred
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.3.4.4" data-path="33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3344-53053a-com-atguigu-dataanalasis-outputformat.html">
            
                <a href="33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3344-53053a-com-atguigu-dataanalasis-outputformat.html">
            
                    
                    3.3.4.4 包:com.atguigu.dataanalasis.outputformat
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3.3.4.5" data-path="33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3345-53053a-com-atguigu-dataanalasis-util.html">
            
                <a href="33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3345-53053a-com-atguigu-dataanalasis-util.html">
            
                    
                    3.3.4.5 包: com.atguigu.dataanalasis.util
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.3.3.5" data-path="33-shu-ju-fen-xi/335-yun-xing-ce-shi.html">
            
                <a href="33-shu-ju-fen-xi/335-yun-xing-ce-shi.html">
            
                    
                    3.3.5 运行测试
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.3.4" data-path="34-shu-ju-zhan-shi.html">
            
                <a href="34-shu-ju-zhan-shi.html">
            
                    
                    3.4 数据展示
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            本书使用 GitBook 发布
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href=".." >3.1 数据生产模块</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <h1 id="31-&#x6570;&#x636E;&#x751F;&#x4EA7;&#x6A21;&#x5757;">3.1 &#x6570;&#x636E;&#x751F;&#x4EA7;&#x6A21;&#x5757;</h1>
<p>&#x6B64;&#x60C5;&#x6B64;&#x666F;&#xFF0C;&#x5BF9;&#x4E8E;&#x8BE5;&#x6A21;&#x5757;&#x7684;&#x4E1A;&#x52A1;&#xFF0C;&#x5373;&#x6570;&#x636E;&#x751F;&#x4EA7;&#x8FC7;&#x7A0B;&#xFF0C;&#x4E00;&#x822C;&#x5E76;&#x4E0D;&#x4F1A;&#x8BA9;&#x4F60;&#x6765;&#x8FDB;&#x884C;&#x64CD;&#x4F5C;&#xFF0C;&#x6570;&#x636E;&#x751F;&#x4EA7;&#x662F;&#x4E00;&#x5957;&#x5B8C;&#x6574;&#x4E14;&#x4E25;&#x5BC6;&#x7684;&#x4F53;&#x7CFB;&#xFF0C;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x4FDD;&#x8BC1;&#x6570;&#x636E;&#x7684;&#x5B89;&#x5168;&#x6027;&#x3002;</p>
<p>&#x4F46;&#x662F;&#x5982;&#x679C;&#x6D89;&#x53CA;&#x5230;&#x9879;&#x76EE;&#x7684;&#x4E00;&#x4F53;&#x5316;&#x65B9;&#x6848;&#x7684;&#x8BBE;&#x8BA1;&#xFF08;&#x6570;&#x636E;&#x7684;&#x4EA7;&#x751F;&#x3001;&#x5B58;&#x50A8;&#x3001;&#x5206;&#x6790;&#x3001;&#x5C55;&#x793A;&#xFF09;&#xFF0C;&#x5219;&#x5FC5;&#x987B;&#x6E05;&#x695A;&#x6BCF;&#x4E00;&#x4E2A;&#x73AF;&#x8282;&#x662F;&#x5982;&#x4F55;&#x5904;&#x7406;&#x7684;&#xFF0C;&#x5305;&#x62EC;&#x5176;&#x4E2D;&#x6BCF;&#x4E2A;&#x73AF;&#x5883;&#x53EF;&#x80FD;&#x9690;&#x85CF;&#x7684;&#x95EE;&#x9898;, &#x6570;&#x636E;&#x7ED3;&#x6784;&#xFF0C;&#x6570;&#x636E;&#x5185;&#x5BB9;&#x53EF;&#x80FD;&#x51FA;&#x73B0;&#x7684;&#x95EE;&#x9898;&#x3002;</p>
<hr>
<h2 id="311-&#x6570;&#x636E;&#x7ED3;&#x6784;">3.1.1 &#x6570;&#x636E;&#x7ED3;&#x6784;</h2>
<p>&#x60F3;&#x8C61;&#x4E00;&#x6B21;&#x5B8C;&#x6574;&#x901A;&#x8BDD;&#x4E00;&#x822C;&#x4F1A;&#x4EA7;&#x751F;&#x54EA;&#x4E9B;&#x6570;&#x636E;:</p>
<ul>
<li><p>&#x4E3B;&#x8981;&#x4FE1;&#x606F;:&#x4E3B;&#x53EB;&#x624B;&#x673A;&#x53F7;, &#x88AB;&#x53EB;&#x624B;&#x673A;&#x53F7;, &#x5F00;&#x59CB;&#x5EFA;&#x7ACB;&#x901A;&#x8BDD;&#x7684;&#x65F6;&#x95F4;(&#x901A;&#x8BDD;&#x65F6;&#x95F4;&#x6233;), &#x901A;&#x8BDD;&#x65F6;&#x957F;</p>
</li>
<li><p>&#x5176;&#x4ED6;&#x4E00;&#x4E9B;&#x4FE1;&#x606F;: &#x4E3B;&#x53EB;&#x4F4D;&#x7F6E;(&#x4E3B;&#x53EB;&#x6240;&#x5728;&#x57FA;&#x7AD9;), &#x88AB;&#x53EB;&#x4F4D;&#x7F6E;(&#x88AB;&#x53EB;&#x6240;&#x5728;&#x57FA;&#x7AD9;) ...</p>
</li>
</ul>
<p>&#x8FD9;&#x4E9B;&#x6570;&#x636E;&#x90FD;&#x5E94;&#x8BE5;&#x662F;&#x7528;&#x6237;&#x5728;&#x6253;&#x7535;&#x8BDD;&#x7684;&#x65F6;&#x5019;&#x751F;&#x6210;&#x7684;.  </p>
<p>&#x5BF9;&#x4E8E;&#x672C;&#x9879;&#x76EE;&#x6211;&#x4EEC;&#x4F7F;&#x7528; Java &#x4EE3;&#x7801;&#x6765;&#x751F;&#x6210;&#x4E0A;&#x8FF0;&#x7684;<my>&quot;&#x4E3B;&#x8981;&#x4FE1;&#x606F;&quot;</my>, &#x5173;&#x4E8E;&quot;&#x5176;&#x4ED6;&#x4E00;&#x4E9B;&#x4FE1;&#x606F;&quot;&#x672C;&#x6B21;&#x4E0D;&#x6D89;&#x53CA;.</p>
<hr>
<h2 id="312-&#x7F16;&#x5199;&#x4EE3;&#x7801;">3.1.2 &#x7F16;&#x5199;&#x4EE3;&#x7801;</h2>
<ol>
<li><p>&#x521B;&#x5EFA; Java &#x96C6;&#x5408;&#x7C7B;&#x5B58;&#x653E;&#x6A21;&#x62DF;&#x7684;&#x7535;&#x8BDD;&#x53F7;&#x7801;&#x548C;&#x8054;&#x7CFB;&#x4EBA;&#xFF1B;</p>
</li>
<li><p>&#x968F;&#x673A;&#x9009;&#x53D6;&#x4E24;&#x4E2A;&#x624B;&#x673A;&#x53F7;&#x7801;&#x5F53;&#x4F5C;&#x201C;&#x4E3B;&#x53EB;&#x201D;&#x4E0E;&#x201C;&#x88AB;&#x53EB;&#x201D;&#xFF08;&#x6CE8;&#x610F;&#x5224;&#x65AD;&#x4E24;&#x4E2A;&#x624B;&#x673A;&#x53F7;&#x4E0D;&#x80FD;&#x91CD;&#x590D;&#xFF09;&#xFF0C;&#x4EA7;&#x51FA;<code>call1</code>&#x4E0E;<code>call2</code>&#x5B57;&#x6BB5;&#x6570;&#x636E;&#xFF1B;</p>
</li>
<li><p>&#x521B;&#x5EFA;&#x968F;&#x673A;&#x751F;&#x6210;&#x901A;&#x8BDD;&#x5EFA;&#x7ACB;&#x65F6;&#x95F4;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x53EF;&#x6307;&#x5B9A;&#x968F;&#x673A;&#x8303;&#x56F4;&#xFF0C;&#x6700;&#x540E;&#x751F;&#x6210;&#x901A;&#x8BDD;&#x5EFA;&#x7ACB;&#x65F6;&#x95F4;&#xFF0C;&#x4EA7;&#x51FA;<code>date_time</code>&#x5B57;&#x6BB5;&#x6570;&#x636E;</p>
</li>
<li><p>&#x968F;&#x673A;&#x751F;&#x6210;&#x4E00;&#x4E2A;&#x901A;&#x8BDD;&#x65F6;&#x957F;&#xFF0C;&#x5355;&#x4F4D;&#xFF1A;&#x79D2;&#xFF0C;&#x4EA7;&#x51FA; <code>duration</code>&#x5B57;&#x6BB5;&#x6570;&#x636E;</p>
</li>
<li><p>&#x5C06;&#x4EA7;&#x51FA;&#x7684;&#x4E00;&#x6761;&#x6570;&#x636E;&#x62FC;&#x63A5;&#x5C01;&#x88C5;&#x5230;&#x4E00;&#x4E2A;&#x5B57;&#x7B26;&#x4E32;</p>
</li>
<li><p>&#x4F7F;&#x7528; IO &#x64CD;&#x4F5C;&#x5C06;&#x4EA7;&#x51FA;&#x7684;&#x4E00;&#x6761;&#x901A;&#x8BDD;&#x6570;&#x636E;&#x5199;&#x5165;&#x5230;&#x672C;&#x5730;&#x6587;&#x4EF6;&#x4E2D;</p>
</li>
</ol>
<h3 id="&#x521B;&#x5EFA;-module-data-producer">&#x521B;&#x5EFA; module: <code>data-producer</code></h3>
<h3 id="&#x7C7B;-comatguigutelecomdataproducerdata">&#x7C7B;: <code>com.atguigu.telecom.dataproducer.Data</code></h3>
<p>&#x8FD9;&#x4E2A;&#x7C7B;&#x5B58;&#x50A8;&#x6211;&#x4EEC;&#x7684;&#x7535;&#x8BDD;&#x53F7;&#x7801;&#x548C;&#x59D3;&#x540D;</p>
<pre class="language-"><code class="lang-java"><span class="token keyword">package</span> com<span class="token punctuation">.</span>atguigu<span class="token punctuation">.</span>telecom<span class="token punctuation">.</span>dataproducer<span class="token punctuation">;</span>

<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>ArrayList<span class="token punctuation">;</span>
<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>HashMap<span class="token punctuation">;</span>
<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>List<span class="token punctuation">;</span>
<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Map<span class="token punctuation">;</span>

<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Data</span> <span class="token punctuation">{</span>
    <span class="token comment">/**
     * &#x7535;&#x8BDD;&#x53F7;&#x7801;&#x5217;&#x8868;
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">final</span> <span class="token keyword">static</span> List<span class="token generics function"><span class="token punctuation">&lt;</span>String<span class="token punctuation">&gt;</span></span> phones<span class="token punctuation">;</span>
    <span class="token comment">/**
     * &#x5B58;&#x50A8;&#x8054;&#x7CFB;&#x4EBA;: &#x7535;&#x8BDD;&#x53F7;&#x7801;-&gt;&#x59D3;&#x540D;
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">final</span> <span class="token keyword">static</span> Map<span class="token generics function"><span class="token punctuation">&lt;</span>String<span class="token punctuation">,</span> String<span class="token punctuation">&gt;</span></span> contacts<span class="token punctuation">;</span>

    <span class="token comment">/**
     * &#x521D;&#x59CB;&#x5316;&#x4E00;&#x4E9B;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x7684;&#x8054;&#x7CFB;&#x4EBA;&#x4FE1;&#x606F;
     */</span>
    <span class="token keyword">static</span> <span class="token punctuation">{</span>
        phones <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token operator">&lt;</span><span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">HashMap</span><span class="token operator">&lt;</span><span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;15369468720&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;19920860202&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;18411925860&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;14473548449&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;18749966182&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;19379884788&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;19335715448&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;18503558939&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;13407209608&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;15596505995&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;17519874292&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;15178485516&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;19877232369&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;18706287692&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;18944239644&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;17325302007&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;18839074540&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;19879419704&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;16480981069&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;18674257265&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;18302820904&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;15133295266&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;17868457605&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;15490732767&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        phones<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">&quot;15064972307&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;15369468720&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x674E;&#x96C1;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;19920860202&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x536B;&#x827A;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;18411925860&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x4EF0;&#x8389;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;14473548449&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x9676;&#x6B23;&#x60A6;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;18749966182&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x65BD;&#x6885;&#x6885;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;19379884788&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x91D1;&#x8679;&#x9716;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;19335715448&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x9B4F;&#x660E;&#x8273;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;18503558939&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x534E;&#x8D1E;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;13407209608&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x534E;&#x555F;&#x5029;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;15596505995&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x4EF2;&#x91C7;&#x7EFF;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;17519874292&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x536B;&#x4E39;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;15178485516&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x621A;&#x4E3D;&#x7EA2;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;19877232369&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x4F55;&#x7FE0;&#x67D4;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;18706287692&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x94B1;&#x6EB6;&#x8273;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;18944239644&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x94B1;&#x7433;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;17325302007&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x7F2A;&#x9759;&#x6B23;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;18839074540&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x7126;&#x79CB;&#x83CA;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;19879419704&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x5415;&#x8BBF;&#x7434;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;16480981069&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x6C88;&#x4E39;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;18674257265&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x891A;&#x7F8E;&#x4E3D;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;18302820904&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x5B59;&#x6021;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;15133295266&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x8BB8;&#x5A75;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;17868457605&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x66F9;&#x7EA2;&#x604B;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;15490732767&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x5415;&#x67D4;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        contacts<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">&quot;15064972307&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;&#x51AF;&#x601C;&#x4E91;&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h3 id="&#x7C7B;-comatguigutelecomdataproducerbeancallrecord">&#x7C7B;: <code>com.atguigu.telecom.dataproducer.bean.CallRecord</code></h3>
<p>JavaBean&#x7C7B;, &#x8868;&#x793A;&#x751F;&#x4EA7;&#x7684;&#x6BCF;&#x6761;&#x8BB0;&#x5F55;&#x5BF9;&#x8C61;.</p>
<p>&#x5E76;&#x4E14;&#x5728;&#x6784;&#x9020;&#x51FD;&#x6570;&#x5185;&#x8BA1;&#x7B97;&#x51FA;&#x6765;&#x4E86;&#x9700;&#x8981;&#x7684;&#x6570;&#x636E;.</p>
<pre class="language-"><code class="lang-java"><span class="token keyword">package</span> com<span class="token punctuation">.</span>atguigu<span class="token punctuation">.</span>telecom<span class="token punctuation">.</span>dataproducer<span class="token punctuation">.</span>bean<span class="token punctuation">;</span>

<span class="token keyword">import</span> com<span class="token punctuation">.</span>atguigu<span class="token punctuation">.</span>telcom<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Util<span class="token punctuation">;</span>
<span class="token keyword">import</span> com<span class="token punctuation">.</span>atguigu<span class="token punctuation">.</span>telecom<span class="token punctuation">.</span>dataproducer<span class="token punctuation">.</span>Data<span class="token punctuation">;</span>

<span class="token keyword">import</span> java<span class="token punctuation">.</span>text<span class="token punctuation">.</span>DecimalFormat<span class="token punctuation">;</span>
<span class="token keyword">import</span> java<span class="token punctuation">.</span>text<span class="token punctuation">.</span>SimpleDateFormat<span class="token punctuation">;</span>
<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Calendar<span class="token punctuation">;</span>
<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Date<span class="token punctuation">;</span>
<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>List<span class="token punctuation">;</span>

<span class="token comment">/**
 * &#x8868;&#x793A;&#x4E00;&#x6761;&#x901A;&#x8BDD;&#x8BB0;&#x5F55;
 */</span>
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">CallRecord</span> <span class="token punctuation">{</span>
    <span class="token comment">/**
     * &#x7535;&#x8BDD;&#x53F7;&#x7801;1
     */</span>
    <span class="token keyword">private</span> String call1<span class="token punctuation">;</span>

    <span class="token comment">/**
     * &#x7535;&#x8BDD;&#x53F7;&#x7801;2
     */</span>
    <span class="token keyword">private</span> String call2<span class="token punctuation">;</span>

    <span class="token comment">/**
     * &#x901A;&#x8BDD;&#x5EFA;&#x7ACB;&#x5EFA;&#x7ACB;&#x65F6;&#x95F4;
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">long</span> startTime<span class="token punctuation">;</span>

    <span class="token comment">/**
     * &#x901A;&#x8BDD;&#x65F6;&#x957F;
     */</span>
    <span class="token keyword">private</span> String duration<span class="token punctuation">;</span>

    <span class="token comment">/**
     * &#x901A;&#x8BDD;&#x7C7B;&#x578B;:
     * &#x7AD9;&#x5728;&#x7535;&#x8BDD;&#x53F7;&#x7801;1&#x7684;&#x89D2;&#x5EA6;&#x662F;&#x4E3B;&#x53EB;&#x8FD8;&#x662F;&#x88AB;&#x53EB;
     * &lt;p&gt;
     * 0 : &#x8868;&#x793A;&#x4E3B;&#x53EB;
     * 1: &#x8868;&#x793A;&#x88AB;&#x53EB;
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">int</span> flag <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * &#x65F6;&#x95F4;&#x683C;&#x5F0F;&#x5316;&#x5BF9;&#x8C61;
     */</span>
    <span class="token keyword">private</span> SimpleDateFormat dateFormatter <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">SimpleDateFormat</span><span class="token punctuation">(</span><span class="token string">&quot;yyyy-MM-dd hh:mm:ss&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * &#x968F;&#x673A;&#x751F;&#x6210;:call1, call2, &#x901A;&#x8BDD;&#x5EFA;&#x7ACB;&#x65F6;&#x95F4;, &#x901A;&#x8BDD;&#x65F6;&#x957F;, flag = 0 &#x9ED8;&#x8BA4;call1&#x662F;&#x4E3B;&#x53EB;
     */</span>
    <span class="token keyword">public</span> <span class="token function">CallRecord</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token comment">//1. &#x751F;&#x6210;call1&#x548C;call2. &#x8FD8;&#x8981;&#x4FDD;&#x8BC1;call1&#x548C;call2&#x4E0D;&#x76F8;&#x7B49;</span>
        String<span class="token punctuation">[</span><span class="token punctuation">]</span> calls <span class="token operator">=</span> <span class="token function">produceCalls</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token function">setCall1</span><span class="token punctuation">(</span>calls<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token function">setCall2</span><span class="token punctuation">(</span>calls<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token comment">//2. &#x968F;&#x673A;&#x751F;&#x6210;&#x901A;&#x8BDD;&#x5BB6;&#x5EFA;&#x7ACB;&#x65F6;&#x95F4;(&#x65F6;&#x95F4;&#x6233;)</span>
        <span class="token function">setStartTime</span><span class="token punctuation">(</span><span class="token function">produceRandomTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token comment">//3. &#x968F;&#x673A;&#x751F;&#x6210;&#x901A;&#x8BDD;&#x65F6;&#x957F;(&#x81F3;&#x5C11;5s)</span>
        <span class="token function">setDuration</span><span class="token punctuation">(</span><span class="token function">produceRandomDuration</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token comment">//4. flag &#x8BBE;&#x7F6E;&#x4E3A;0</span>
        <span class="token function">setFlag</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * &#x751F;&#x6210;&#x968F;&#x673A;&#x7684;&#x65F6;&#x957F;(s)
     * &#x4E3A;&#x4E86;&#x540E;&#x671F;&#x6570;&#x636E;&#x7684;&#x5206;&#x6790;&#x65B9;&#x4FBF;, &#x6211;&#x4EEC;&#x683C;&#x5F0F;&#x5316;&#x901A;&#x8BDD;&#x65F6;&#x957F;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x957F;&#x5EA6;&#x4E3A;4&#x4F4D;
     * &lt;p&gt;
     * &#x6BD4;&#x5982;: 12 -&gt; &quot;0012&quot;
     * 140 -&gt; &apos;014&apos;
     * 1500 -&gt; &apos;1500&apos;
     *
     * @return
     */</span>
    <span class="token keyword">private</span> String <span class="token function">produceRandomDuration</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">int</span> duration <span class="token operator">=</span> Util<span class="token punctuation">.</span><span class="token function">randomInt</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">6000</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        DecimalFormat format <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">DecimalFormat</span><span class="token punctuation">(</span><span class="token string">&quot;0000&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> format<span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span>duration<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * &#x751F;&#x6210;&#x968F;&#x673A;&#x7684;&#x65F6;&#x95F4;&#x6233;
     *
     * @return
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">long</span> <span class="token function">produceRandomTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token comment">// &#x4E3A;&#x4E86;&#x4E1A;&#x52A1;&#x9700;&#x6C42;, &#x6211;&#x4EEC;&#x53EA;&#x751F;&#x6210;2018-1-1 &#x5230; 2020-1-1&#x4E4B;&#x95F4;&#x7684;&#x4EFB;&#x610F;&#x65F6;&#x95F4;&#x6233;</span>
        Calendar from <span class="token operator">=</span> Calendar<span class="token punctuation">.</span><span class="token function">getInstance</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        from<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token number">2018</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        Calendar to <span class="token operator">=</span> Calendar<span class="token punctuation">.</span><span class="token function">getInstance</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        to<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token number">2020</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token keyword">return</span> Util<span class="token punctuation">.</span><span class="token function">randomLong</span><span class="token punctuation">(</span>from<span class="token punctuation">.</span><span class="token function">getTimeInMillis</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> to<span class="token punctuation">.</span><span class="token function">getTimeInMillis</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * &#x968F;&#x673A;&#x751F;&#x6210;&#x4E24;&#x4E2A;&#x7535;&#x8BDD;
     *
     * @return
     */</span>
    <span class="token keyword">private</span> String<span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token function">produceCalls</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        List<span class="token generics function"><span class="token punctuation">&lt;</span>String<span class="token punctuation">&gt;</span></span> phones <span class="token operator">=</span> Data<span class="token punctuation">.</span>phones<span class="token punctuation">;</span>
        String<span class="token punctuation">[</span><span class="token punctuation">]</span> calls <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">String</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
        <span class="token comment">// &#x968F;&#x673A;&#x751F;&#x6210;&#x4E24;&#x4E2A;&#x7535;&#x8BDD;&#x53F7;&#x7801;: &#x751F;&#x6210;&#x4E24;&#x4E2A;&#x4E0D;&#x7B49;&#x7684;&#x4E0B;&#x6807;, &#x7136;&#x540E;&#x4ECE;&#x96C6;&#x5408;&#x4E2D;&#x53D6;&#x51FA;&#x7535;&#x8BDD;&#x53F7;&#x7801;</span>
        <span class="token keyword">int</span> index1 <span class="token operator">=</span> Util<span class="token punctuation">.</span><span class="token function">randomInt</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> phones<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">int</span> index2<span class="token punctuation">;</span>
        <span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            index2 <span class="token operator">=</span> Util<span class="token punctuation">.</span><span class="token function">randomInt</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> phones<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token keyword">if</span> <span class="token punctuation">(</span>index1 <span class="token operator">!=</span> index2<span class="token punctuation">)</span> <span class="token keyword">break</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
        calls<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=</span> phones<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>index1<span class="token punctuation">)</span><span class="token punctuation">;</span>
        calls<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">=</span> phones<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>index2<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> calls<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> String <span class="token function">getCall1</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> call1<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">setCall1</span><span class="token punctuation">(</span>String call1<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>call1 <span class="token operator">=</span> call1<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> String <span class="token function">getCall2</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> call2<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">setCall2</span><span class="token punctuation">(</span>String call2<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>call2 <span class="token operator">=</span> call2<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">long</span> <span class="token function">getStartTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> startTime<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">setStartTime</span><span class="token punctuation">(</span><span class="token keyword">long</span> startTime<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>startTime <span class="token operator">=</span> startTime<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> String <span class="token function">getDuration</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> duration<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">setDuration</span><span class="token punctuation">(</span>String duration<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>duration <span class="token operator">=</span> duration<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">getFlag</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> flag<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">setFlag</span><span class="token punctuation">(</span><span class="token keyword">int</span> flag<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>flag <span class="token operator">=</span> flag<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * &#x8FD4;&#x56DE;&#x7684;&#x5C31;&#x662F;&#x5C06;&#x6765;&#x6BCF;&#x6761;&#x8BB0;&#x5F55;&#x7684;&#x683C;&#x5F0F;
     * call1,startTime,call2,duration,flag
     * &lt;p&gt;
     * &#x8F93;&#x51FA;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x65F6;&#x5019;, &#x6211;&#x4EEC;&#x628A;startTime &#x6362;&#x6210; 2018-02-03 10:22:10 &#x8FD9;&#x6837;&#x7684;&#x683C;&#x5F0F;
     *
     * @return
     */</span>
    <span class="token annotation punctuation">@Override</span>
    <span class="token keyword">public</span> String <span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> <span class="token keyword">this</span><span class="token punctuation">.</span>call1 <span class="token operator">+</span> <span class="token string">&quot;,&quot;</span>
                <span class="token operator">+</span> dateFormatter<span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>startTime<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">&quot;,&quot;</span>
                <span class="token operator">+</span> <span class="token keyword">this</span><span class="token punctuation">.</span>call2 <span class="token operator">+</span> <span class="token string">&quot;,&quot;</span>
                <span class="token operator">+</span> <span class="token keyword">this</span><span class="token punctuation">.</span>duration <span class="token operator">+</span> <span class="token string">&quot;,&quot;</span>
                <span class="token operator">+</span> <span class="token keyword">this</span><span class="token punctuation">.</span>flag<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h3 id="&#x7C7B;-comatguigutelecomdataproducerproductlog">&#x7C7B;: <code>com.atguigu.telecom.dataproducer.ProductLog</code></h3>
<p>&#x4E3B;&#x7C7B;</p>
<pre class="language-"><code class="lang-java"><span class="token keyword">package</span> com<span class="token punctuation">.</span>atguigu<span class="token punctuation">.</span>telecom<span class="token punctuation">.</span>dataproducer<span class="token punctuation">;</span>

<span class="token keyword">import</span> com<span class="token punctuation">.</span>atguigu<span class="token punctuation">.</span>telecom<span class="token punctuation">.</span>dataproducer<span class="token punctuation">.</span>bean<span class="token punctuation">.</span>CallRecord<span class="token punctuation">;</span>

<span class="token keyword">import</span> java<span class="token punctuation">.</span>io<span class="token punctuation">.</span>*<span class="token punctuation">;</span>


<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">ProductLog</span> <span class="token punctuation">{</span>

    <span class="token comment">/**
     * &#x628A;&#x65E5;&#x5FD7;(&#x901A;&#x8BDD;&#x8BB0;&#x5F55;)&#x5199;&#x5165;&#x672C;&#x5730;&#x78C1;&#x76D8;
     * &lt;p&gt;
     * &#x4E00;&#x6761;&#x901A;&#x8BDD;&#x8BB0;&#x5F55;, &#x6211;&#x4EEC;&#x5411;&#x78C1;&#x76D8;&#x4E2D;&#x5199;&#x5165;&#x4E00;&#x6B21;
     * &lt;p&gt;
     * &#x901A;&#x8FC7;&#x5FAA;&#x73AF;&#x7684;&#x65B9;&#x5F0F;, &#x6301;&#x7EED;&#x7684;&#x5199;&#x5165;&#x5230;&#x6587;&#x4EF6;&#x4E2D;.
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">writLogs</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">throws</span> IOException<span class="token punctuation">,</span> InterruptedException <span class="token punctuation">{</span>
        String filePath <span class="token operator">=</span> <span class="token string">&quot;/opt/module/telecom/calls.csv&quot;</span><span class="token punctuation">;</span>

        FileWriter writer <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FileWriter</span><span class="token punctuation">(</span>filePath<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            writer<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token function">produceOneLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">&quot;\n&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            writer<span class="token punctuation">.</span><span class="token function">flush</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            Thread<span class="token punctuation">.</span><span class="token function">sleep</span><span class="token punctuation">(</span><span class="token number">1000</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>

    <span class="token comment">/**
     * &#x968F;&#x673A;&#x4EA7;&#x751F;&#x4E00;&#x6761;&#x901A;&#x8BDD;&#x8BB0;&#x5F55;
     * &lt;p&gt;
     * &#x901A;&#x8BDD;&#x8BB0;&#x5F55;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x8868;&#x793A;&#x5F62;&#x5F0F;
     */</span>
    <span class="token keyword">public</span> String <span class="token function">produceOneLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        CallRecord record <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">CallRecord</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> record<span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span>String<span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token keyword">throws</span> IOException<span class="token punctuation">,</span> InterruptedException <span class="token punctuation">{</span>
        ProductLog productLog <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ProductLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        productLog<span class="token punctuation">.</span><span class="token function">writLogs</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

<span class="token punctuation">}</span>
</code></pre>
<h3 id="&#x5DE5;&#x5177;&#x7C7B;util">&#x5DE5;&#x5177;&#x7C7B;<code>Util</code></h3>
<pre class="language-"><code class="lang-java"><span class="token keyword">package</span> com<span class="token punctuation">.</span>atguigu<span class="token punctuation">.</span>telcom<span class="token punctuation">.</span>util<span class="token punctuation">;</span>

<span class="token keyword">import</span> sun<span class="token punctuation">.</span>applet<span class="token punctuation">.</span>Main<span class="token punctuation">;</span>

<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Random<span class="token punctuation">;</span>

<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Util</span> <span class="token punctuation">{</span>
    <span class="token comment">/**
     * &#x968F;&#x673A;&#x6570;&#x751F;&#x6210;&#x5668;&#x5BF9;&#x8C61;
     */</span>
    <span class="token keyword">private</span> <span class="token keyword">static</span> Random r <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Random</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">/**
     * &#x751F;&#x6210;&#x4E00;&#x4E2A;&#x5927;&#x4E8E;&#x7B49;&#x4E8E;form, &#x5C0F;&#x4E8E;&#x7B49;&#x4E8E;to&#x7684;&#x968F;&#x673A;int&#x6574;&#x6570;  [from, to]
     * from &#x5FC5;&#x987B;&#x5C0F;&#x4E8E;&#x7B49;&#x4E8E; to
     *
     * @param from
     * @param to
     */</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">int</span> <span class="token function">randomInt</span><span class="token punctuation">(</span><span class="token keyword">int</span> from<span class="token punctuation">,</span> <span class="token keyword">int</span> to<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span>from <span class="token operator">&gt;</span> to<span class="token punctuation">)</span> <span class="token keyword">throw</span> <span class="token keyword">new</span> <span class="token class-name">RuntimeException</span><span class="token punctuation">(</span><span class="token string">&quot;&#x53C2;&#x6570;&#x9519;&#x8BEF;, &quot;</span> <span class="token operator">+</span> from <span class="token operator">+</span> <span class="token string">&quot; &#x5927;&#x4E8E;&quot;</span> <span class="token operator">+</span> to <span class="token operator">+</span> <span class="token string">&quot;&#x8981;&#x6C42;from&#x5FC5;&#x987B;&#x5C0F;&#x4E8E;&#x7B49;&#x4E8E;to&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> r<span class="token punctuation">.</span><span class="token function">nextInt</span><span class="token punctuation">(</span>to <span class="token operator">-</span> from <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">+</span> from<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">long</span> <span class="token function">randomLong</span><span class="token punctuation">(</span><span class="token keyword">long</span> from<span class="token punctuation">,</span> <span class="token keyword">long</span> to<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span>from <span class="token operator">&gt;</span> to<span class="token punctuation">)</span> <span class="token keyword">throw</span> <span class="token keyword">new</span> <span class="token class-name">RuntimeException</span><span class="token punctuation">(</span><span class="token string">&quot;&#x53C2;&#x6570;&#x9519;&#x8BEF;, &quot;</span> <span class="token operator">+</span> from <span class="token operator">+</span> <span class="token string">&quot; &#x5927;&#x4E8E;&quot;</span> <span class="token operator">+</span> to <span class="token operator">+</span> <span class="token string">&quot;&#x8981;&#x6C42;from&#x5FC5;&#x987B;&#x5C0F;&#x4E8E;&#x7B49;&#x4E8E;to&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        <span class="token keyword">return</span> Math<span class="token punctuation">.</span><span class="token function">abs</span><span class="token punctuation">(</span>r<span class="token punctuation">.</span><span class="token function">nextLong</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">%</span> <span class="token punctuation">(</span>to <span class="token operator">-</span> from <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">+</span> from<span class="token punctuation">;</span>

    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<blockquote>
<h4 id="&#x6CE8;&#x610F;"><em>&#x6CE8;&#x610F;:</em></h4>
</blockquote>
<ul>
<li>&#x4E3A;&#x4E86;&#x5728;&#x5176;&#x4ED6;&#x9879;&#x76EE;&#x4E2D;&#x4F7F;&#x7528;&#x65B9;&#x4FBF;, &#x53EF;&#x4EE5;&#x628A;&#x5DE5;&#x5177;&#x7C7B;&#x653E;&#x5165;&#x5728;&#x4E13;&#x95E8;&#x7684;&#x5B50;&#x9879;&#x76EE;&#x4E2D;.</li>
</ul>
<hr>
<h2 id="313-&#x6253;&#x5305;&#x5230;-linux-&#x8FDB;&#x884C;&#x6D4B;&#x8BD5;">3.1.3 &#x6253;&#x5305;&#x5230; Linux &#x8FDB;&#x884C;&#x6D4B;&#x8BD5;</h2>
<p>&#x521B;&#x5EFA;&#x76EE;&#x5F55;<code>/opt/module/telecom</code></p>
<p>&#x628A;&#x672C;&#x9879;&#x76EE;&#x4E0B;&#x7528;&#x5230;&#x7684;&#x6587;&#x4EF6;&#x90FD;&#x653E;&#x5728;&#x6B64;&#x76EE;&#x5F55;&#x4E0B;.</p>
<p>&#x628A;&#x6253;&#x5305;&#x597D;&#x7684;&#x6587;&#x4EF6;copy&#x5230;&#x8BE5;&#x76EE;&#x5F55;&#x4E0B;.</p>
<p>&#x6267;&#x884C; jar &#x5305;&#x6587;&#x4EF6;&#x4E0B;&#x7684;&#x4E3B;&#x7C7B;:</p>
<pre class="language-"><code>java -Djava.ext.dirs=/opt/module/telecom -cp producer.jar com.atguigu.telecom.dataproducer
.ProductLog
</code></pre><blockquote>
<h4 id="&#x8BF4;&#x660E;"><em>&#x8BF4;&#x660E;:</em></h4>
</blockquote>
<ul>
<li><p>&#x5982;&#x679C;&#x4F9D;&#x8D56;&#x4E86;&#x5176;&#x4ED6;&#x7684;&#x5B50;&#x9879;&#x76EE;&#x5219;&#x9700;&#x8981;&#x6DFB;&#x52A0;&#x53C2;&#x6570;:<code>-Djava.ext.dirs=/opt/module/telecom</code>, &#x5982;&#x679C;&#x6CA1;&#x6709;&#x5219;&#x4E0D;&#x9700;&#x8981;&#x6DFB;&#x52A0;</p>
</li>
<li><p>&#x5982;&#x679C;&#x6709;&#x4F9D;&#x8D56;&#x5176;&#x4ED6;&#x7684;&#x5B50;&#x9879;&#x76EE;, &#x4E5F;&#x9700;&#x8981;&#x628A;&#x5176;&#x4ED6;&#x7684;&#x5B50;&#x9879;&#x76EE;&#x6253;&#x5305;&#x653E;&#x5728;<code>-Djava.ext.dirs</code>&#x6307;&#x5B9A;&#x7684;&#x76EE;&#x5F55;&#x4E0B;.</p>
</li>
<li><p><code>-cp</code> &#x7B49;&#x4EF7;&#x4E8E;<code>-classpath</code> </p>
</li>
</ul>
<hr>
<h2 id="314-&#x7F16;&#x5199;-shell-&#x811A;&#x672C;">3.1.4 &#x7F16;&#x5199; shell &#x811A;&#x672C;</h2>
<p>&#x4E3A;&#x4E86;&#x4EE5;&#x540E;&#x751F;&#x6210;&#x6570;&#x636E;&#x65B9;&#x4FBF;, &#x5219;&#x53EF;&#x4EE5;&#x628A;&#x4E0A;&#x9762;&#x7684;&#x547D;&#x4EE4;&#x653E;&#x5728;&#x811A;&#x672C;&#x5185;.</p>
<pre class="language-"><code class="lang-bash"><span class="token function">cd</span> /opt/module/telecom
vim producer.sh

<span class="token comment"># &#x4E0A;&#x9762;&#x7684;&#x6307;&#x4EE4;&#x653E;&#x5165;&#x6587;&#x4EF6;&#x4E2D;</span>
java -Djava.ext.dirs<span class="token operator">=</span>/opt/module/telecom -cp producer.jar com.atguigu.telecom.dataproducer
.ProductLog 

<span class="token comment"># &#x4FEE;&#x6539;&#x6587;&#x4EF6;&#x6743;&#x9650;</span>
<span class="token function">chmod</span> 777 producer.sh

<span class="token comment"># &#x6267;&#x884C;&#x811A;&#x672C;</span>
./producer.sh
</code></pre>
<footer class="page-footer"><span class="copyright">Copyright &#xA9; &#x5C1A;&#x7845;&#x8C37;&#x5927;&#x6570;&#x636E; 2019 all right reserved&#xFF0C;powered by Gitbook</span><span class="footer-modification"><br>&#x8BE5;&#x6587;&#x4EF6;&#x6700;&#x540E;&#x4FEE;&#x8BA2;&#x65F6;&#x95F4;&#xFF1A;
2018-12-27 20:11:51
</span></footer>
                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="../di-3-zhang-xiang-shi-xian.html" class="navigation navigation-prev " aria-label="Previous page: 第 3 章 项目实现">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="32-shu-ju-cai-ji-he-xiao-fei.html" class="navigation navigation-next " aria-label="Next page: 3.2 数据采集和消费">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"3.1 数据生产模块","level":"1.3.1","depth":2,"next":{"title":"3.2 数据采集和消费","level":"1.3.2","depth":2,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei.md","articles":[{"title":"3.2.1 数据采集","level":"1.3.2.1","depth":3,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/321-shu-ju-cai-ji.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/321-shu-ju-cai-ji.md","articles":[]},{"title":"3.2.2 数据消费","level":"1.3.2.2","depth":3,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei.md","articles":[{"title":"3.2.2.1 类:PropertyUtil","level":"1.3.2.2.1","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3221-7c7b3a-propertyutil.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3221-7c7b3a-propertyutil.md","articles":[]},{"title":"3.2.2.2 类: HBaseDao","level":"1.3.2.2.2","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3222-7c7b3ahbasedao.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3222-7c7b3ahbasedao.md","articles":[]},{"title":"3.2.2.3 类: HBaseUtil","level":"1.3.2.2.3","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3223-7c7b3ahbaseutil.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3223-7c7b3ahbaseutil.md","articles":[]},{"title":"3.2.2.4 类: HBaseConsumer","level":"1.3.2.2.4","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3224-7c7b3ahbaseconsumer.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3224-7c7b3ahbaseconsumer.md","articles":[]}]},{"title":"3.2.3 数据查询方式1","level":"1.3.2.3","depth":3,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1.md","articles":[{"title":"3.2.3.1 类: HBaseFilterUtil","level":"1.3.2.3.1","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3231-hbasefilterutil.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3231-hbasefilterutil.md","articles":[]},{"title":"3.2.3.2 类: QueryWithFilter","level":"1.3.2.3.2","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3232-7c7b3a-querywithfilter.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3232-7c7b3a-querywithfilter.md","articles":[]}]},{"title":"3.2.4 数据查询方式2","level":"1.3.2.4","depth":3,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2.md","articles":[{"title":"3.2.4.1 手动写入被叫信息","level":"1.3.2.4.1","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3241-shou-dong-cha-ru-bei-jiao-xin-xi.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3241-shou-dong-cha-ru-bei-jiao-xin-xi.md","articles":[]},{"title":"3.2.4.2 使用协处理器写入被叫信息","level":"1.3.2.4.2","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3242-shi-yong-xie-chu-li-qi-xie-ru-bei-jiao-xin-xi.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3242-shi-yong-xie-chu-li-qi-xie-ru-bei-jiao-xin-xi.md","articles":[]}]},{"title":"3.2.5 把整个消费模块打包到集群中运行","level":"1.3.2.5","depth":3,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/325-ba-zheng-ge-xiao-fei-mo-kuai-da-bao-dao-ji-qun-zhong-yun-xing.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/325-ba-zheng-ge-xiao-fei-mo-kuai-da-bao-dao-ji-qun-zhong-yun-xing.md","articles":[]}]},"previous":{"title":"第 3 章 项目实现","level":"1.3","depth":1,"path":"di-3-zhang-xiang-shi-xian.md","ref":"di-3-zhang-xiang-shi-xian.md","articles":[{"title":"3.1 数据生产模块","level":"1.3.1","depth":2,"path":"di-3-zhang-xiang-shi-xian/31-shu-ju-sheng-cheng.md","ref":"di-3-zhang-xiang-shi-xian/31-shu-ju-sheng-cheng.md","articles":[]},{"title":"3.2 数据采集和消费","level":"1.3.2","depth":2,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei.md","articles":[{"title":"3.2.1 数据采集","level":"1.3.2.1","depth":3,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/321-shu-ju-cai-ji.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/321-shu-ju-cai-ji.md","articles":[]},{"title":"3.2.2 数据消费","level":"1.3.2.2","depth":3,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei.md","articles":[{"title":"3.2.2.1 类:PropertyUtil","level":"1.3.2.2.1","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3221-7c7b3a-propertyutil.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3221-7c7b3a-propertyutil.md","articles":[]},{"title":"3.2.2.2 类: HBaseDao","level":"1.3.2.2.2","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3222-7c7b3ahbasedao.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3222-7c7b3ahbasedao.md","articles":[]},{"title":"3.2.2.3 类: HBaseUtil","level":"1.3.2.2.3","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3223-7c7b3ahbaseutil.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3223-7c7b3ahbaseutil.md","articles":[]},{"title":"3.2.2.4 类: HBaseConsumer","level":"1.3.2.2.4","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3224-7c7b3ahbaseconsumer.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/322-shu-ju-xiao-fei/3224-7c7b3ahbaseconsumer.md","articles":[]}]},{"title":"3.2.3 数据查询方式1","level":"1.3.2.3","depth":3,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1.md","articles":[{"title":"3.2.3.1 类: HBaseFilterUtil","level":"1.3.2.3.1","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3231-hbasefilterutil.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3231-hbasefilterutil.md","articles":[]},{"title":"3.2.3.2 类: QueryWithFilter","level":"1.3.2.3.2","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3232-7c7b3a-querywithfilter.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-1/3232-7c7b3a-querywithfilter.md","articles":[]}]},{"title":"3.2.4 数据查询方式2","level":"1.3.2.4","depth":3,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2.md","articles":[{"title":"3.2.4.1 手动写入被叫信息","level":"1.3.2.4.1","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3241-shou-dong-cha-ru-bei-jiao-xin-xi.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3241-shou-dong-cha-ru-bei-jiao-xin-xi.md","articles":[]},{"title":"3.2.4.2 使用协处理器写入被叫信息","level":"1.3.2.4.2","depth":4,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3242-shi-yong-xie-chu-li-qi-xie-ru-bei-jiao-xin-xi.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/323-shu-ju-cha-xun-fang-shi-2/3242-shi-yong-xie-chu-li-qi-xie-ru-bei-jiao-xin-xi.md","articles":[]}]},{"title":"3.2.5 把整个消费模块打包到集群中运行","level":"1.3.2.5","depth":3,"path":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/325-ba-zheng-ge-xiao-fei-mo-kuai-da-bao-dao-ji-qun-zhong-yun-xing.md","ref":"di-3-zhang-xiang-shi-xian/32-shu-ju-cai-ji-he-xiao-fei/325-ba-zheng-ge-xiao-fei-mo-kuai-da-bao-dao-ji-qun-zhong-yun-xing.md","articles":[]}]},{"title":"3.3 数据分析","level":"1.3.3","depth":2,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi.md","articles":[{"title":"3.3.1 数据分析","level":"1.3.3.1","depth":3,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/331-xu-qiu-fen-xi.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/331-xu-qiu-fen-xi.md","articles":[]},{"title":"3.3.2 Mysql 表结构设计","level":"1.3.3.2","depth":3,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/332-mysql-biao-jie-gou-she-ji.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/332-mysql-biao-jie-gou-she-ji.md","articles":[]},{"title":"3.3.3 环境搭建","level":"1.3.3.3","depth":3,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/333-huan-jing-da-jian.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/333-huan-jing-da-jian.md","articles":[]},{"title":"3.3.4 需求实现","level":"1.3.3.4","depth":3,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian.md","articles":[{"title":"3.3.4.1 包: com.atguigu.dataanalasis.bean","level":"1.3.3.4.1","depth":4,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3341-53053a-com-atguigu-dataanalasis-bean.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3341-53053a-com-atguigu-dataanalasis-bean.md","articles":[]},{"title":"3.3.4.2 包: com.atguigu.dataanalasis.conversion","level":"1.3.3.4.2","depth":4,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3342-53053a-com-atguigu-dataanalasis-conversion.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3342-53053a-com-atguigu-dataanalasis-conversion.md","articles":[]},{"title":"3.3.4.3 包:com.atguigu.dataanalasis.mapred","level":"1.3.3.4.3","depth":4,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3343-53053a-com-atguigu-dataanalasis-mapred.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3343-53053a-com-atguigu-dataanalasis-mapred.md","articles":[]},{"title":"3.3.4.4 包:com.atguigu.dataanalasis.outputformat","level":"1.3.3.4.4","depth":4,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3344-53053a-com-atguigu-dataanalasis-outputformat.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3344-53053a-com-atguigu-dataanalasis-outputformat.md","articles":[]},{"title":"3.3.4.5 包: com.atguigu.dataanalasis.util","level":"1.3.3.4.5","depth":4,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3345-53053a-com-atguigu-dataanalasis-util.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/334-xu-qiu-shi-xian/3345-53053a-com-atguigu-dataanalasis-util.md","articles":[]}]},{"title":"3.3.5 运行测试","level":"1.3.3.5","depth":3,"path":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/335-yun-xing-ce-shi.md","ref":"di-3-zhang-xiang-shi-xian/33-shu-ju-fen-xi/335-yun-xing-ce-shi.md","articles":[]}]},{"title":"3.4 数据展示","level":"1.3.4","depth":2,"path":"di-3-zhang-xiang-shi-xian/34-shu-ju-zhan-shi.md","ref":"di-3-zhang-xiang-shi-xian/34-shu-ju-zhan-shi.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["splitter","expandable-chapters-small","page-toc-button","-highlight","prism","prism-themes","tbfed-pagefooter","sitemap","change_girls","livereload"],"styles":{"website":"styles/website.css","ebook":"styles/ebook.css","pdf":"styles/pdf.css","mobi":"styles/mobi.css","epub":"styles/epub.css"},"pluginsConfig":{"tbfed-pagefooter":{"copyright":"Copyright &copy 尚硅谷大数据 2019","modify_label":"<br>该文件最后修订时间：","modify_format":"YYYY-MM-DD HH:mm:ss"},"prism":{"css":["prismjs/themes/prism-solarizedlight.css"]},"disqus":{"shortName":"zhenchao125"},"livereload":{},"splitter":{},"change_girls":{"time":30,"urls":["http://lizhenchao.oss-cn-shenzhen.aliyuncs.com/imgs/18-3-4/62171757.jpg-atguiguImg","http://lizhenchao.oss-cn-shenzhen.aliyuncs.com/imgs/18-3-4/83394736.jpg-atguiguImg","http://lizhenchao.oss-cn-shenzhen.aliyuncs.com/imgs/18-3-4/15906185.jpg-atguiguImg","http://lizhenchao.oss-cn-shenzhen.aliyuncs.com/imgs/18-3-4/15906185.jpg-atguiguImg","http://lizhenchao.oss-cn-shenzhen.aliyuncs.com/imgs/18-3-4/3394270.jpg-atguiguImg","http://lizhenchao.oss-cn-shenzhen.aliyuncs.com/imgs/18-3-4/65028582.jpg-atguiguImg","http://lizhenchao.oss-cn-shenzhen.aliyuncs.com/imgs/18-3-4/20359261.jpg-atguiguImg","http://lizhenchao.oss-cn-shenzhen.aliyuncs.com/imgs/18-3-4/37472401.jpg-atguiguImg","http://lizhenchao.oss-cn-shenzhen.aliyuncs.com/imgs/18-3-4/3355397.jpg-atguiguImg","http://lizhenchao.oss-cn-shenzhen.aliyuncs.com/imgs/18-3-4/11075549.jpg-atguiguImg"]},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"fontsettings":{"theme":"white","family":"sans","size":2},"sitemap":{"hostname":"http://bigdataatguigu.applinzi.com/"},"page-toc-button":{"maxTocDepth":3,"minTocSize":2},"prism-themes":{},"expandable-chapters-small":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":" 李振超","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"大数据 bigdata_telecom_project_atguigu 课堂笔记","language":"zh-hans","links":{"sidebar":{"联系我们":"http://www.atguigu.com/"}},"gitbook":"*","description":"课堂笔记,学生提前预习"},"file":{"path":"di-3-zhang-xiang-shi-xian/31-shu-ju-sheng-cheng.md","mtime":"2018-12-27T12:11:51.816Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-11T00:27:37.149Z"},"basePath":"..","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="../gitbook/gitbook.js"></script>
    <script src="../gitbook/theme.js"></script>
    
        
        <script src="../gitbook/gitbook-plugin-splitter/splitter.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-expandable-chapters-small/expandable-chapters-small.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-page-toc-button/plugin.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-change_girls/girls.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-livereload/plugin.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-search/search-engine.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-search/search.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    

    </body>
</html>

